package com.sfh.alliance;

import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationSet;
import android.view.animation.LinearInterpolator;
import android.view.animation.ScaleAnimation;
import android.view.animation.TranslateAnimation;

import static android.animation.ValueAnimator.INFINITE;
import static android.animation.ValueAnimator.REVERSE;

/**
 * 功能描述:
 *
 * @date 2017/9/5
 */
public class AnimaUtil {

    public static AnimationSet getScaleAnimation()
    {
        AnimationSet animationSet = new AnimationSet (true);
            /*
                参数解释：
                    第一个参数：X轴水平缩放起始位置的大小（fromX）。1代表正常大小
                    第二个参数：X轴水平缩放完了之后（toX）的大小，0代表完全消失了
                    第三个参数：Y轴垂直缩放起始时的大小（fromY）
                    第四个参数：Y轴垂直缩放结束后的大小（toY）
                    第五个参数：pivotXType为动画在X轴相对于物件位置类型
                    第六个参数：pivotXValue为动画相对于物件的X坐标的开始位置
                    第七个参数：pivotXType为动画在Y轴相对于物件位置类型
                    第八个参数：pivotYValue为动画相对于物件的Y坐标的开始位置

                   （第五个参数，第六个参数），（第七个参数,第八个参数）是用来指定缩放的中心点
                    0.5f代表从中心缩放
             */
        ScaleAnimation in = new ScaleAnimation(0.5f,1.5f,0.5f,1.5f,
                Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);

        ScaleAnimation out = new ScaleAnimation(1.5f,0.5f,1.5f,0.5f,
                Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);

        //3秒完成动画
        in.setDuration(2000);
        //将AlphaAnimation这个已经设置好的动画添加到 AnimationSet中
        //设置插值器
        in.setInterpolator(new LinearInterpolator ());
        //设置重复模式
        in.setRepeatMode(AnimationSet.INFINITE);
        //设置重复次数
        in.setRepeatCount(AnimationSet.INFINITE);

        //3秒完成动画
        out.setDuration(2000);
        //将AlphaAnimation这个已经设置好的动画添加到 AnimationSet中
        //设置插值器
        out.setInterpolator(new LinearInterpolator ());
        //设置重复模式
        out.setRepeatMode(AnimationSet.INFINITE);
        //设置重复次数
        out.setRepeatCount(AnimationSet.INFINITE);


        animationSet.addAnimation(in);
        animationSet.addAnimation(out);

        return  animationSet;
    }

    public static void geTranslateAnimation(View view)
    {

        ObjectAnimator in = ObjectAnimator.ofFloat (view,"rotationY",-10,10,0);
        ObjectAnimator out = ObjectAnimator.ofFloat (view,"rotationY",10,-10,0);
        //设置重复模式
        in.setRepeatMode(REVERSE);
        //设置重复次数
        in.setRepeatCount(INFINITE);

        //设置重复模式
        out.setRepeatMode(REVERSE);
        //设置重复次数
        out.setRepeatCount(INFINITE);

        AnimatorSet animatorSet2 = new AnimatorSet();
        animatorSet2.playSequentially (in,out);
        animatorSet2.setDuration (1000);
        animatorSet2.start ();
    }
}
